<!DOCTYPE html>
<html>
<head>
	<title>闭包</title>
	<meta charset="utf-8">
</head>
<body>
闭包：
    概念：函数与函数相互嵌套的情况，将内部函数保存到外部，能从外部访问内部函数环境下的所有变量
    发生时间：
        将内部函数保存到外部的时候，闭包就形成了
    闭包的缺点：
        把外部变量保存到内存中不被释放。导致空间的消耗，内存泄漏。
    闭包的作用：
        可以访问内部变量
        模块化开发
        避免变量全局污染
    闭包的使用场景：
    	1.采用函数引用方式的setTimeout调用
    	2.封装相关的功能集
<script>
      function foo(x){
        var tmp=3;
          bar=function(y){
          return (x+y+(++tmp));//2+10+4=16   //2+10+5=17
        }
        
      }
      console.log(foo(2));//undefined
      console.log(bar(10));//16
      console.log(bar(10));//17
      
      
  </script>
  
</body>
</html>